home *** CD-ROM | disk | FTP | other *** search
- /*
- * Gestalt.h for system 6.0.6
- *
- * Copyright (c) 1990 Symantec Corporation. All rights reserved.
- *
- * These interfaces are based on material copyrighted
- * by Apple Computer, Inc., 1985-1990.
- *
- * Written 10/9/90 MYG based on the MPW GestaltEqu.h of 6-14-90
- *
- * Revised 10/16/90 MYG Fixed some TYPOs
- */
-
-
- #ifndef _Gestalt_
- #define _Gestalt_
-
-
- #ifndef _MacTypes_
- #include <MacTypes.h>
- #endif /* _MacTypes_ */
-
- pascal OSErr Gestalt( OSType selector, long *response );
- pascal OSErr NewGestalt( OSType selector, ProcPtr gestaltFunction );
- pascal OSErr ReplaceGestalt( OSType selector, ProcPtr gestaltFunction,
- ProcPtr *oldGestaltFunction);
-
-
-
- /************************
- * Gestalt error codes
- ************************/
- enum {
- gestaltLocationErr = -5553, /* gestalt function ptr wasn't in sysheap */
- gestaltDupSelectorErr, /* tried to add an entry that already existed */
- gestaltUndefSelectorErr, /* undefined selector was passed to Gestalt */
- gestaltUnknownErr /* value returned if Gestalt doesn't know the answer */
- };
-
-
- /**************************
- * Environment Selectors
- **************************/
- #define gestaltVersion 'vers' /* gestalt version */
-
- #define gestaltAddressingModeAttr 'addr' /* addressing mode attributes */
- enum {
- gestalt32BitAddressing,
- gestalt32BitSysZone,
- gestalt32BitCapable
- };
-
- #define gestaltAliasMgrAttr 'alis' /* Alias Mgr Attributes */
- #define gestaltAliasMgrPresent 0 /* True if the Alias Mgr is present */
-
- #define gestaltAppleTalkVersion 'atlk' /* appletalk version */
-
- #define gestaltAUXVersion 'a/ux' /* a/ux version, if present */
-
- #define gestaltConnMgrAttr 'conn' /* connection mgr attributes */
- enum {
- gestaltConnMgrPresent,
- gestaltConnMgrErrorString,
- gestaltConnMgrCMSearchFix = 3
- };
-
- #define gestaltCRMAttr 'crm ' /* comm resource mgr attributes */
- #define gestaltCRMPresent 0
-
- #define gestaltCTBManagers 'ctbm' /* bitmask of which managers are present */
-
- #define gestaltCTBUtilsAttr 'ctbu' /* CommToolbox utilities attributes */
- #define gestaltCTBUtilsPresent 0
-
- #define gestaltCTBVersion 'ctbv' /* CommToolbox version */
-
- #define gestaltDBAccessMgrAttr 'dbac' /* Database Access Mgr attributes */
- #define gestaltDBAccessMgrPresent 0 /* True if Database Access Mgr present */
-
- #define gestaltEditionMgrAttr 'edtn' /* Edition Mgr attributes */
- #define gestaltEditionMgrPresent 0 /* True if Edition Mgr present */
-
- #define gestaltAppleEventsAttr 'evnt' /* Apple Events attributes */
- #define gestaltAppleEventsPresent 0 /* True if Apple Events present */
-
- #define gestaltFolderMgrAttr 'fold' /* Folder Mgr attributes */
- #define gestaltFolderMgrPresent 0 /* True if Folder Mgr present */
-
- #define gestaltFontMgrAttr 'font' /* Font Mgr attributes */
- #define gestaltOutlineFonts 0 /* True if Outline Fonts supported */
-
- #define gestaltFPUType 'fpu ' /* fpu type */
- enum {
- gestaltNoFPU,
- gestalt68881,
- gestalt68882,
- gestalt68040FPU
- };
-
- #define gestaltFXfrMgrAttr 'fxfr' /* file transfer manager attributes */
- #define gestaltFXfrMgrPresent 0
- #define gestaltFXfrMgrErrorString 1
-
- #define gestaltHardwareAttr 'hdwr' /* hardware attributes */
- enum {
- gestaltHasVIA1,
- gestaltHasVIA2,
- gestaltHasASC = 3,
- gestaltHasSCC,
- gestaltHasSCSI = 7
- };
-
-
- #define gestaltHelpMgrAttr 'help' /* Help Mgr Attributes */
- #define gestaltHelpMgrPresent 0 /* true if help mgr is present */
-
- enum {
- gestaltKeyboardType = 1,
- gestaltMacKbd,
- gestaltMacAndPad,
- gestaltMacPlusKbd,
- gestaltExtADBKbd,
- gestaltStdADBKbd,
- gestaltPrtblADBKbd,
- gestaltPrtblISOKbd,
- gestaltStdISOADBKbd,
- gestaltElmerKbd,
- gestaltElmerISOKbd
- };
-
-
- #define gestaltKeyboardType 'kbd ' /* keyboard type */
-
- #define gestaltLowMemorySize 'lmem' /* size of low memory area */
-
- #define gestaltLogicalRAMSize 'lram' /* logical ram size */
-
- #define gestaltMiscAttr 'misc' /* miscellaneous attributes */
- #define gestaltScrollingThrottle 0 /* true if scrolling throttle on */
-
- #define gestaltMMUType 'mmu ' /* mmu type */
- enum {
- gestaltNoMMU,
- gestaltAMU,
- gestalt68851,
- gestalt68030MMU,
- gestalt68040MMU
- };
-
- #define gestaltStdNBPAttr 'nlup' /* standard nbp attributes */
-
- #define gestaltStdNBPPresent 0
-
- #define gestaltNotificationMgrAttr 'nmgr' /* notification manager attributes */
- #define gestaltNotificationPresent 0 /* notification manager exists */
-
- #define gestaltOSAttr 'os ' /* o/s attributes */
-
- enum {
- gestaltSysZoneGrowable,
- gestaltLaunchCanReturn,
- gestaltLaunchFullFileSpec,
- gestaltLaunchControl,
- gestaltTempMemSupport,
- gestaltRealTempMemory,
- gestaltTempMemTracked,
- gestaltIPCSupport,
- gestaltSysDebuggerSupport
- };
-
- #define gestaltLogicalPageSize 'pgsz' /* logical page size */
-
- #define gestaltPowerMgrAttr 'powr' /* power manager attributes */
- enum {
- gestaltPMgrExists,
- gestaltPMgrCPUIdle,
- gestaltPMgrSCC,
- gestaltPMgrSound
- };
-
- #define gestaltPPCToolboxAttr 'ppc ' /* PPC toolbox attributes */
-
- /*
- * PPC will return the combination of following bit fields.
- * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncomming + gestaltPPCSupportsOutGoing
- * indicates PPC is cuurently is only supports real time delivery
- * and both icoming and outgoing network sessions are allowed.
- * By default local real time delivery is supported as long as PPCInit has been called.
- */
-
- enum {
- gestaltPPCToolboxPresent,
- gestaltPPCSupportsIncomming,
- gestaltPPCSupportsOutGoing,
- gestaltPPCSupportsRealTime = 0X1000,
- gestaltPPCSupportsStoreAndForward = 0X2000,
- gestaltPPCSupportsDontCare = 0x4000
- };
-
- #define gestaltProcessorType 'proc' /* processor type */
- enum {
- gestalt68000 = 1,
- gestalt68010,
- gestalt68020,
- gestalt68030,
- gestalt68040
- };
-
- #define gestaltParityAttr 'prty' /* parity attributes */
- #define gestaltHasParityCapability 0 /* has ability to check parity */
- #define gestaltParityEnabled 1 /* parity checking enabled */
-
- #define gestaltQuickdrawVersion 'qd ' /* quickdraw version */
- #define gestaltOriginalQD 0x000 /* original 1-bit QD <3.2> */
- #define gestalt8BitQD 0x100 /* 8-bit color QD <3.2> */
- #define gestalt32BitQD 0x200 /* 32-bit color QD <3.2> */
-
- #define gestaltPhysicalRAMSize 'ram ' /* physical RAM size */
-
- #define gestaltPopupAttr 'pop!' /* popup cdef attributes */
- #define gestaltPopupPresent 0
-
- #define gestaltResourceMgrAttr 'rsrc' /* Resource Mgr attributes */
- #define gestaltPartialRsrcs 0 /* True if partial resources exist */
-
- #define gestaltScriptMgrVersion 'scri' /* Script Manager version number <08/05/89 pke> */
- #define gestaltScriptCount 'scr#' /* number of active script systems <08/05/89 pke> */
-
- #define gestaltSoundAttr 'snd ' /* sound attributes */
- enum {
- gestaltStereoCapability,
- gestaltStereoMixing,
- gestaltSoundIOMgrPresent = 3,
- gestaltSoundInputPresent
- };
-
- #define gestaltStandardFileAttr 'stdf' /* Standard File attributes */
- #define gestaltStandardFile58 0 /* True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported */
-
- #define gestaltTextEditVersion 'te ' /* TextEdit version number <08/05/89 pke> */
- enum {
- gestaltTE1 = 1, /* TextEdit in MacIIci ROM <8Aug89smb> */
- gestaltTE2, /* TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) <8Aug89smb> */
- gestaltTE3, /* TextEdit with 6.0.4 Script Systems all but MacIIci <8Aug89smb> */
- gestaltTE4 /* TextEdit in Big Bang <8Aug89smb> */
- };
-
- #define gestaltTermMgrAttr 'term' /* terminal mgr attributes */
- #define gestaltTermMgrPresent 0
- #define gestaltTermMgrErrorString 1
-
- #define gestaltTimeMgrVersion 'tmgr' /* time mgr version */
- #define gestaltStandardTimeMgr 1 /* standard time mgr is present */
- #define gestaltRevisedTimeMgr 2 /* revised time mgr is present */
- #define gestaltExtendedTimeMgr 3 /* extended time mgr is present */
-
- #define gestaltVMAttr 'vm ' /* virtual memory attributes */
- #define gestaltVMPresent 0 /* true if virtual memory is present */
-
- /*************************
- * Info-only selectors
- ************************/
- #define gestaltMachineType 'mach' /* machine type */
- enum {
- gestaltClassic = 1,
- gestaltMacXL,
- gestaltMac512KE,
- gestaltMacPlus,
- gestaltMacSE,
- gestaltMacII,
- gestaltMacIIx,
- gestaltMacIIcx,
- gestaltMacSE030,
- gestaltPortable,
- gestaltMacIIci,
- gestaltMacIIfx = 13
- };
-
- #define gestaltMachineIcon 'micn' /* machine icon */
-
- #define gestaltROMSize 'rom ' /* rom size */
- #define gestaltROMVersion 'romv' /* rom version */
- #define gestaltSystemVersion 'sysv' /* system version*/
-
- #endif